﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entidades;
using System.ServiceModel;

namespace ServicioEvaluacion
{
    public class ExamenesCodigos : IExamenesCodigos
    {
        #region Agregar Código Examen

        public bool Agregar(ExamenCodigo nuevoExamenCodigo)
        {
            bool resultado = false;

            try
            {
                LogicaDeNegocios.ExamenesCodigos ec = new LogicaDeNegocios.ExamenesCodigos();
                resultado = ec.Agregar(nuevoExamenCodigo);
            }
            catch (Exception ex)
            {                
                resultado = false;
            }

            return resultado;
        }
        
        #endregion

        #region Modificar Código Examen

        public bool Modificar(ExamenCodigo examenCodigoAModificar)
        {
            bool resultado = false;

            try
            {
                LogicaDeNegocios.ExamenesCodigos ec = new LogicaDeNegocios.ExamenesCodigos();
                resultado = ec.Modificar(examenCodigoAModificar);

            }
            catch (Exception ex)
            {             
                resultado = false;
            }

            return resultado;
        }
        
        #endregion

        #region Eliminar Código Examen

        public bool Eliminar(ExamenCodigo examenCodigoAEliminar)
        {
            bool resultado = false;

            try
            {
                LogicaDeNegocios.ExamenesCodigos ec = new LogicaDeNegocios.ExamenesCodigos();
                resultado = ec.Eliminar(examenCodigoAEliminar);

            }
            catch (Exception ex)
            {                
                resultado = false;
            }

            return resultado;
        }
        
        #endregion

        #region Obtener Códigos de Examenes

        public List<ExamenCodigo> ObtenerCodigosExamenes(string codigo = "", string examenClave = "")
        {
            List<ExamenCodigo> resultado = null;

            try
            {
                LogicaDeNegocios.ExamenesCodigos ec = new LogicaDeNegocios.ExamenesCodigos();
                resultado = ec.ObtenerCodigosExamenes(codigo, examenClave);
            }
            catch (Exception ex)
            {                
                resultado = null;
            }

            return resultado;
        }
        
        #endregion

        #region Obtener Código de Examen

        public ExamenCodigo ObtenerCodigoExamen(string codigo)
        {
            ExamenCodigo resultado = null;

            try
            {
                LogicaDeNegocios.ExamenesCodigos ec = new LogicaDeNegocios.ExamenesCodigos();
                resultado = ec.ObtenerCodigoExamen(codigo);
            }
            catch (Exception ex)
            {                
                resultado = null;
            }

            return resultado;
        } 

        #endregion

        #region Obtener Información Examen Código

        public ExamenCodigoMostrar ObtenerInformacionExamenCodigo(string codigo)
        {
            ExamenCodigoMostrar resultado = null;

            try
            {
                LogicaDeNegocios.ExamenesCodigos ec = new LogicaDeNegocios.ExamenesCodigos();                
                resultado = ec.ObtenerInformacionExamenCodigo(codigo);
            }
            catch (Exception ex)
            {                
                resultado = null;
            }

            return resultado;
        } 
        #endregion

        #region Reiniciar informacion del Examen Codigo

        public bool Reiniciar(string codigoExamen)
        {
           bool resultado = false;

            try
            {
                LogicaDeNegocios.ExamenesCodigos ec = new LogicaDeNegocios.ExamenesCodigos();
                resultado = ec.Reiniciar(codigoExamen);
                
            }
            catch (Exception)
            {
                resultado = false;
            }

            return resultado;
        } 
        #endregion

        #region Calificar Examen

        public Resultado CalificarExamen(string claveExamen, string examenCodigo)
        {
            Resultado resultado = null;

            try
            {
                LogicaDeNegocios.ExamenesCodigos ec = new LogicaDeNegocios.ExamenesCodigos();
                resultado = ec.CalificarExamen(claveExamen, examenCodigo);
            }
            catch (Exception)
            {
                resultado = null;
            }

            return resultado;
        }

        #endregion
    }
}
